#ifndef __DTD_H__
#define __DTD_H__

#include <vector>
#include <map>
#include <boost/regex.hpp>
#include "DTDElement.h"
#include "AttList.h"
#include "Printer.h"

//STRUCTURE MEMOIRE DTD
//
//Printer

using namespace boost;

class DTD : public Printer
{
	public:
		/*Constructeurs*/
		DTD();
		DTD( const vector<DTDElement*>& elements);
		DTD( const vector<DTDElement*>& elements, vector<AttList*>& attList);

		/*Destructeur*/
		virtual ~DTD();

		/*Get & Set*/
		const vector<DTDElement*>& getElements() const;
		const vector<AttList*>& getAttList() const;

		vector<DTDElement*>& getElements2();
		vector<AttList*>& getAttList2();

		/* Fonction de transformation en expression régulière*/
		map<string, regex> toRegExp() const;
		
		/*Fonction d'affichage de la structure en mémoire*/
		void printMe();

	private:
		vector<DTDElement*>	vElements;
		vector<AttList*>	vAttList;

};

#endif // #define __DTD_H__

